https://geekhack.org/index.php?topic=42385.0
If I got it right...
* Hasu's tmk_firmware does debouncing on all keys as a block. Polling the matrix in an idle loop until it finds a possible key-press. Then it enters "debouncing mode", where it waits 1 ms between sampling. 5 ms debounce interval on both press and release.
* bpiphany's AVR-Keyboard does no debouncing on press, but 3.9 ms on release, per key. 0.48 ms between advancing the key's debouncing counter, but sampling continuously.
* The ErgoDox firmware does no debouncing at all, waiting 5 ms between samples.

I wonder if anyone has experienced spurious keys or chattering on the Phantom or ErgoDox...
I have a chattering switch on my Phantom/AVR-Keyboard, but that switch also feels different so it must have been damaged when I lubed it.
If I understand it right, you would need debouncing on at least key press or key release to avoid chattering, but you would need it on both if you also need to avoid EMI problems.


https://geekhack.org/index.php?topic=42385.msg863452#msg863452 has the correct debounce code.